home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
VIG-PM10.ZIP
/
PROMAT.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1994-04-20
|
7KB
|
544 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Boolean BOOLEAN003
Boolean BOOLEAN004
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer TINTEGER004(9)
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
Integer INTEGER009
Integer TINTEGER010(9)
Integer TINTEGER011(9)
String STRING001
String STRING002
String TSTRING003(10)
String TSTRING004(9)
String TSTRING005(2)
String STRING006
String STRING007
String TSTRING008(9)
String TSTRING009(100)
String STRING010
String STRING011
String STRING012
String STRING013
String TSTRING014(33)
String STRING015
String STRING016
String STRING017
String STRING018
String STRING019
;------------------------------------------------------------------------------
StartDisp 1
TSTRING005(0) = "ProMatrix v1.0 by ViGilante [PWA] "
TSTRING005(1) = "<UNREGISTERED>"
TSTRING005(2) = " ,A=Up ,Z=Down <CR>=Choice"
STRING010 = "■ " + Left(TSTRING005(0), 9) + ": "
STRING001 = "@X08 ■ Via " + TSTRING005(0) + "■"
STRING018 = "ulas"
STRING019 = "drz" + Chr(9)
STRING002 = TSTRING005(0) + TSTRING005(1) + TSTRING005(2)
For INTEGER008 = 1 To Len(STRING002)
INTEGER007 = INTEGER007 + Asc(Mid(STRING002, INTEGER008, 1))
Next
If (INTEGER007 <> 6066) Hangup
FOpen 1, PPEPath() + "promat.cnf", 0, 0
For INTEGER008 = 1 To 10
FGet 1, TSTRING003(INTEGER008)
Next
FClose 1
STRING012 = Upper(ReadLine(PCBDat(), 2) + ReadLine(PCBDat(), 94))
FClose -1
INTEGER006 = 1
For INTEGER008 = 1 To Len(STRING012) Step 2
INTEGER006 = Left(INTEGER006 * Asc(Mid(STRING012, INTEGER008, 1)), 6)
Next
If (TSTRING003(1) == INTEGER006) BOOLEAN004 = 1
FOpen 1, PPEPath() + "strings.dat", 0, 0
For INTEGER008 = 1 To 33
FGet 1, TSTRING014(INTEGER008)
Next
FClose 1
For INTEGER008 = -2 To Right(Time(), 1)
INTEGER007 = 1 + Random(TSTRING003(2) - 1)
Next
FOpen 1, PPEPath() + "matrix" + String(INTEGER007) + ".cnf", 0, 0
:LABEL001
If (BOOLEAN001) Goto LABEL002
FGet 1, TSTRING004(INTEGER001)
FGet 1, STRING016
FGet 1, TSTRING008(INTEGER001)
If (TSTRING008(INTEGER001) == "") Then
BOOLEAN001 = 1
Else
Tokenize STRING016
TINTEGER010(INTEGER001) = GetToken()
TINTEGER011(INTEGER001) = GetToken()
TINTEGER004(INTEGER001) = GetToken()
FGet 1, STRING016
Inc INTEGER001
Endif
Goto LABEL001
:LABEL002
FClose 1
If ((Time() > ToTime(TSTRING003(8))) && (Time() < ToTime(TSTRING003(9)))) Then
INTEGER005 = 30
Gosub LABEL021
Newline
INTEGER005 = 31
Gosub LABEL021
InputStr " _", STRING011, 0, 25, Mask_Pwd(), 0
Newline
If (Lower(STRING011) <> Lower(TSTRING003(7))) Then
OpText TimeAp(TSTRING003(9))
INTEGER005 = 32
Gosub LABEL021
BOOLEAN003 = 1
BOOLEAN002 = 1
Goto LABEL003
Endif
INTEGER005 = 33
Gosub LABEL021
:LABEL003
Newline
Wait
Endif
:LABEL004
If (BOOLEAN003) Goto LABEL017
DispFile PPEPath() + "matrix" + String(INTEGER007) + ".pcb", 0
AnsiPos 1, 1
INTEGER008 = Random(5) + 1
Print "@X" + String(INTEGER008) + "F" + TSTRING005(0)
If (BOOLEAN004) Goto LABEL005
Print "@X" + I2S(INTEGER008 + 8, 16) + "F" + TSTRING005(1)
Goto LABEL006
:LABEL005
Print Space(Len(TSTRING005(1)))
:LABEL006
Print "@X" + String(INTEGER008) + "F" + TSTRING005(2)
STRING006 = ""
INTEGER002 = 0
Gosub LABEL018
While (STRING006 <> Chr(13)) Do
STRING006 = Left(Lower(Inkey()), 1)
If (InStr(STRING019, STRING006) <> 0) Then
Gosub LABEL019
Inc INTEGER002
If (INTEGER002 == INTEGER001) INTEGER002 = 0
Gosub LABEL018
Continue
Endif
If (InStr(STRING018, STRING006) <> 0) Then
Gosub LABEL019
Dec INTEGER002
If (INTEGER002 == -1) INTEGER002 = INTEGER001 - 1
Gosub LABEL018
Endif
EndWhile
Color 7
STRING011 = ""
STRING007 = ""
STRING002 = ScrText(1, 1, 34, 0)
If (STRING002 <> TSTRING005(0)) Hangup
Select Case (Lower(TSTRING004(INTEGER002)))
Case "logon"
If (Upper(TSTRING003(3)) <> "NONE") Then
INTEGER005 = 1
Cls
Gosub LABEL021
InputStr " _", STRING011, 0, 25, Mask_Pwd(), 0
Newline
If (Upper(STRING011) == Upper(TSTRING003(3))) Then
INTEGER005 = 3
Gosub LABEL021
BOOLEAN003 = 1
Else
INTEGER005 = 2
Gosub LABEL021
Inc INTEGER003
Log STRING010 + "Failed Logon, tried (" + STRING011 + ")", 0
Endif
Gosub LABEL020
Else
BOOLEAN003 = 1
Endif
Case "apply"
INTEGER005 = 4
Cls
Gosub LABEL021
InputStr " _", STRING007, 0, 25, Mask_Pwd(), 0
Newline
If (STRING007 <> "") Then
INTEGER009 = U_RecNum(Upper(STRING007))
If (INTEGER009 < 1) Then
If (Exist(PPEPath() + "carpet.red")) Then
FOpen 1, PPEPath() + "carpet.red", 0, 0
:LABEL007
If (Ferr(1)) Goto LABEL008
FGet 1, STRING016
If (Upper(STRING016) == Upper(STRING007)) TSTRING003(4) = "NONE"
Goto LABEL007
:LABEL008
FClose 1
Endif
If (Upper(TSTRING003(4)) == "NONE") Then
INTEGER005 = 7
Gosub LABEL021
Gosub LABEL020
BOOLEAN003 = 1
KbdStuff STRING007 + Chr(13)
Goto LABEL009
Endif
INTEGER005 = 6
Gosub LABEL021
InputStr " _", STRING011, 0, 25, Mask_Pwd(), 0
Newline
If (Upper(STRING011) == Upper(TSTRING003(4))) Then
INTEGER005 = 9
Gosub LABEL021
Gosub LABEL020
BOOLEAN003 = 1
KbdStuff STRING007 + Chr(13)
Goto LABEL009
Endif
INTEGER005 = 8
Gosub LABEL021
Inc INTEGER003
Log STRING010 + "Failed Apply, tried (" + STRING011 + ")", 0
Gosub LABEL020
:LABEL009
Goto LABEL010
Endif
INTEGER005 = 5
Gosub LABEL021
Gosub LABEL020
Endif
:LABEL010
Case "check"
INTEGER005 = 10
Cls
Gosub LABEL021
InputStr " _", STRING007, 0, 25, Mask_Pwd(), 0
Newline
If (Upper(TSTRING003(3)) <> "NONE") Then
If (STRING007 <> "") Then
INTEGER009 = U_RecNum(Upper(STRING007))
If (INTEGER009 < 1) Then
INTEGER005 = 11
Gosub LABEL021
Inc INTEGER003
Log STRING010 + "Failed Check, tried (" + STRING007 + ")", 0
Gosub LABEL020
Goto LABEL013
Endif
INTEGER005 = 12
Gosub LABEL021
InputStr " _", STRING011, 0, 12, Mask_Pwd(), 1
Newline
GetAltUser INTEGER009
If (Upper(STRING011) == Upper(U_Pwd)) Then
If (U_Sec < TSTRING003(5)) Then
INTEGER005 = 14
Gosub LABEL021
Gosub LABEL020
If (Lower(TSTRING003(10)) == "yes") Then
KbdStuff STRING007 + Chr(13)
BOOLEAN003 = 1
Endif
Goto LABEL011
Endif
OpText Upper(TSTRING003(3))
INTEGER005 = 15
Gosub LABEL021
Newline
INTEGER005 = 17
Gosub LABEL021
InputYN " _", STRING017, 7
Newline
If (STRING017 == YesChar()) Then
KbdStuff STRING007 + Chr(13)
BOOLEAN003 = 1
Goto LABEL011
Endif
Inc INTEGER003
:LABEL011
Goto LABEL012
Endif
INTEGER005 = 13
Gosub LABEL021
Inc INTEGER003
Log STRING010 + "Failed Check, tried (" + STRING007 + "," + STRING011 + ")", 0
Gosub LABEL020
:LABEL012
PutUser
Endif
:LABEL013
Else
INTEGER005 = 16
Gosub LABEL021
Gosub LABEL020
Endif
Case "feedback"
OpText ReadLine(PCBDat(), 2)
FClose -1
Cls
INTEGER005 = 21
Gosub LABEL021
Newline
INTEGER005 = 22
Gosub LABEL021
InputStr " _", STRING007, 0, 25, Mask_Pwd(), 0
Newline
If (STRING007 <> "") Then
INTEGER005 = 23
Gosub LABEL021
InputStr " _", STRING015, 0, 25, Mask_Pwd(), 0
Newline
If (STRING015 <> "") Then
OpText TSTRING003(6)
INTEGER005 = 24
Gosub LABEL021
Newline
INTEGER005 = 25
Gosub LABEL021
Newline
INTEGER002 = 1
STRING017 = YesChar()
BOOLEAN001 = 0
:LABEL014
If (BOOLEAN001) Goto LABEL016
TSTRING009(INTEGER002) = ""
InputStr "_", TSTRING009(INTEGER002), 0, 78, Mask_Pwd(), 512
Newline
If (Lower(TSTRING009(INTEGER002)) == "/s") Then
BOOLEAN001 = 1
Newline
INTEGER002 = 1
FCreate 1, PPEPath() + "feedback." + String(PcbNode()), 1, 3
While (Lower(TSTRING009(INTEGER002)) <> "/s") Do
FPutLn 1, TSTRING009(INTEGER002)
Inc INTEGER002
EndWhile
FPutLn 1, ""
FPutLn 1, STRING001
FClose 1
Message 0, Upper(ReadLine(PCBDat(), 2)), Upper(STRING007), STRING015, "R", 0, 0, 0, PPEPath() + "feedback." + String(PcbNode())
FClose -1
Delete PPEPath() + "feedback." + String(PcbNode())
INTEGER005 = 26
Gosub LABEL021
Gosub LABEL020
Goto LABEL015
Endif
If (Lower(TSTRING009(INTEGER002)) == "/a") Then
BOOLEAN001 = 1
Newline
INTEGER005 = 27
Gosub LABEL021
Gosub LABEL020
Endif
:LABEL015
Inc INTEGER002
Goto LABEL014
Endif
Endif
:LABEL016
Case "logoff"
INTEGER005 = 28
Cls
Gosub LABEL021
BOOLEAN003 = 1
BOOLEAN002 = 1
Case Else
Cls
DispStr TSTRING004(INTEGER002)
StartDisp 1
Gosub LABEL020
End Select
Goto LABEL004
:LABEL017
If (BOOLEAN002) Bye
StartDisp 2
End
:LABEL018
STRING013 = ScrText(TINTEGER010(INTEGER002), TINTEGER011(INTEGER002), TINTEGER004(INTEGER002), 1)
AnsiPos TINTEGER010(INTEGER002), TINTEGER011(INTEGER002)
Print TSTRING008(INTEGER002)
AnsiPos TINTEGER010(INTEGER002), TINTEGER011(INTEGER002)
Return
:LABEL019
AnsiPos TINTEGER010(INTEGER002), TINTEGER011(INTEGER002)
Print STRING013
Return
:LABEL020
Newline
Wait
If (INTEGER003 == 3) Then
Newline
DispStr TSTRING014(29)
Newline
BOOLEAN003 = 1
BOOLEAN002 = 1
Endif
Return
:LABEL021
DispStr TSTRING014(INTEGER005)
StartDisp 1
Return
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 1 End
; 6 Cls
; 2 Wait
; 1 Color
; 72 Goto
; 89 Let
; 6 Print
; 48 If
; 1 DispFile
; 1 FCreate
; 4 FOpen
; 8 FClose
; 7 FGet
; 3 FPutLn
; 4 StartDisp
; 2 Hangup
; 1 PutUser
; 1 Delete
; 4 Log
; 9 InputStr
; 1 InputYN
; 46 Gosub
; 4 Return
; 9 Inc
; 1 Dec
; 21 Newline
; 1 Tokenize
; 4 KbdStuff
; 1 Bye
; 4 OpText
; 3 DispStr
; 4 AnsiPos
; 1 Message
; 1 GetAltUser
;
;
; ■ Functions used :
;
; 5 -
; 1 *
; 60 +
; 2 -
; 19 ==
; 13 <>
; 9 <
; 5 <=
; 1 >
; 10 >=
; 41 !
; 11 &&
; 5 ||
; 5 Len(
; 12 Lower()
; 17 Upper()
; 2 Mid()
; 3 Left()
; 2 Right()
; 1 Space()
; 1 Ferr()
; 6 Chr()
; 2 Asc()
; 2 InStr()
; 2 Random()
; 4 Time()
; 1 TimeAp()
; 2 YesChar()
; 1 Inkey()
; 7 String()
; 9 Mask_Pwd()
; 4 PCBDat()
; 9 PPEPath()
; 3 PcbNode()
; 4 ReadLine()
; 3 GetToken()
; 1 Exist()
; 1 I2S()
; 2 U_RecNum()
; 2 ScrText()
; 2 ToTime()
;
;------------------------------------------------------------------------------
;
; Analysis flags : WRBdH
;
; W - Write user ■ 5
; Program writes a user record. Although this may be normal for a
; User Editor, it may also be a way to modify an account level.
; ■ Search for : PUTUSER
;
; R - Read user ■ 5
; User records are read, this may signify that someone wants to get
; various informations about a user (for example his password), but
; this may also be normal for a program accessing user records (for
; example a User Editor)
; ■ Search for : GETALTUSER
;
; B - Brute hangup ■ 1
; Program hangup without notification. This may be a good way to
; disconnect a user, but if used randomly, may be very nasty
; ■ Search for : HANGUP, DTROFF
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
; H - Read Password or Password History ■ 5
; Program is reading the user's password or last password history
; This may be ok for a password manager, but it is very suspect. Check!
; ■ Search for : U_PWDHIST, U_PWD
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 5 For/Next
; 2 While/EndWhile
; 24 If/Then or If/Then/Else
; 1 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------